uint32_t reverseBits(uint32_t n) {
	int i = 0;
	uint32_t ans = 0;
	for (i = 1; i <= 32; i++) {
		ans |= ((n >> (i - 1)) & 1) << (31 - i + 1);
	}
	return ans;
}
